package com.ccit.sand.config;

import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;

@Configuration
@ConfigurationProperties(prefix = "alipay")
@Data
public class AlipayConfig {
    //    // 基础参数
//    private String appId;                        // 应用ID
//    private String merchantPrivateKey;           // 应用私钥（PKCS8格式）
//    private String alipayPublicKey;              // 支付宝公钥
//
//    // 网关与协议参数
//    private String gatewayUrl;                   // 网关地址
//    private String format = "json";              // 数据格式
//    private String charset = "UTF-8";            // 编码
//    private String signType = "RSA2";            // 签名算法
//
//    // 超时控制
//    private int connectTimeout = 10000;          // 连接超时时间（毫秒）
//    private int readTimeout = 15000;             // 读取超时时间（毫秒）
    @Value("${alipay.notifyUrl}")
    private  String notifyUrl;
    @Value("${alipay.appId}")
    private  String appId;
    @Value("${alipay.appPrivateKey}")
    private  String appPrivateKey;
    @Value("${alipay.alipayPublicKey}")
    private  String alipayPublicKey;

    @PostConstruct
    public void init() {
        // 设置参数（全局只需设置一次）
        Config config = new Config();
        config.protocol = "https";
        config.gatewayHost = "openapi.alipaydev.com";
        config.signType = "RSA2";
        config.appId = this.appId;
        config.merchantPrivateKey = this.appPrivateKey;
        config.alipayPublicKey = this.alipayPublicKey;
        config.notifyUrl = this.notifyUrl;
        Factory.setOptions(config);
        System.out.println("=======支付宝SDK初始化成功=======");
    }
}
